/////////////////////////////////////////////////////////////////////////////////////////////////////////
// File:	"IBaseInterface.h"
//
// Authors: James Gonzalez (JG), 
// 
// Purpose: The base interface for all of our objects
/////////////////////////////////////////////////////////////////////////////////////////////////////////


#pragma once

class IBaseInterface
{
public:
	virtual ~IBaseInterface(void) = 0 {}

	//////////////////////////////////////////////////////////////////////////////////////////////////////
	//  Function: Update
	//
	//  Purpose : Updates the class
	///////////////////////////////////////////////////////////////////////////////////////////////////////
	virtual void Update(float fElapsedTime ) = 0;
	
	//////////////////////////////////////////////////////////////////////////////////////////////////////
	//  Function: Render
	//
	//  Purpose : Draw to the screen
	///////////////////////////////////////////////////////////////////////////////////////////////////////
	virtual void Render(void) = 0;

	//////////////////////////////////////////////////////////////////////////////////////////////////////
	//  Function: AddRef
	//
	//  Purpose : Add reference
	///////////////////////////////////////////////////////////////////////////////////////////////////////
	virtual void AddRef(void) = 0;

	//////////////////////////////////////////////////////////////////////////////////////////////////////
	//  Function: Release
	//
	//  Purpose : release reference
	///////////////////////////////////////////////////////////////////////////////////////////////////////
	virtual void Release(void) = 0;
};